---
title: Sugeng
date: 2021-03-21
description: 一个简单的 Node.js 框架
source: https://github.com/elianiva/sugeng
type: open-source
stack:
  - [Node.js, https://nodejs.org/]
  - [TypeScript, https://www.typescriptlang.org/]
---

一个用 TypeScript 编写的简单 Node.js 框架。它提供了构建 Web 应用程序的基本功能。

## 特性

- 轻量级
- 基于 TypeScript
- 中间件支持
- 路由系统
- 错误处理
- 易于扩展

## 安装

```bash
npm install sugeng
```

## 基本使用

```typescript
import { Sugeng } from 'sugeng';

const app = new Sugeng();

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});
```

## 路由

```typescript
// GET 请求
app.get('/users', (req, res) => {
  res.json({ message: 'Get all users' });
});

// POST 请求
app.post('/users', (req, res) => {
  res.json({ message: 'Create a new user' });
});

// 带参数的路由
app.get('/users/:id', (req, res) => {
  const { id } = req.params;
  res.json({ message: `Get user with id ${id}` });
});
```

## 中间件

```typescript
// 应用级别中间件
app.use((req, res, next) => {
  console.log('Request received');
  next();
});

// 路由级别中间件
app.get('/protected', (req, res, next) => {
  // 验证逻辑
  if (isValid) {
    next();
  } else {
    res.status(401).json({ error: 'Unauthorized' });
  }
}, (req, res) => {
  res.json({ message: 'Protected route' });
});
```

## 错误处理

```typescript
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).json({ error: 'Something went wrong!' });
});
```

## 许可证

MIT